
package de.uni.wuppertal.server;

import java.util.*;

import javax.xml.namespace.NamespaceContext;

/**
 * @author Martin Schröder
 * @author Patrik Nordsiek
 */
public class GenericNamespaceContext implements NamespaceContext
{
	private Map<String, String> mapping = new HashMap<String, String>();
	
	public void registerNamespace(String prefix, String namespaceURI)
	{
		mapping.put(prefix, namespaceURI);
	}
	
	@Override
	public String getNamespaceURI(String prefix)
	{
		if(mapping.containsKey(prefix))
		{
			return mapping.get(prefix);
		}
		
		return null;
	}
	
	@Override
	public String getPrefix(String namespaceURI)
	{
		for(String prefix : mapping.keySet())
		{
			if(mapping.get(prefix).equals(namespaceURI))
			{
				return prefix;
			}
		}
		
		return null;
	}
	
	@Override
	public Iterator<String> getPrefixes(String namespaceURI)
	{
		List<String> result = new ArrayList<String>();
		
		for(String prefix : mapping.keySet())
		{
			if(mapping.get(prefix).equals(namespaceURI))
			{
				result.add(prefix);
			}
		}
		
		return result.iterator();
	}
}
